-- CONSULTA POR EQUIPOS
-- ID EQUIPO
-- 
CREATE PROCEDURE USP_CONSULTA_TB_EQUIPO_X_IP_MAC_PC
	(
	@equipo_direccion_ip varchar(15),
	@equipo_direccion_mac varchar(18),
	@equipo_nombre_pc varchar(25)	
	)
AS 
BEGIN
SELECT 	
	eq.id_equipo,
	eq.equipo_nombre_pc,
	eq.[equipo_responsable],
	eq.[equipo_direccion_ip],
	eq.[equipo_direccion_mac],
	eq.[equipo_observacion],
	eq.[equipo_actualizado],
	eq.[equipo_licencia],
	eq.[equipo_codigo_inventario],
	eq.[equipo_fecha_creacion],
	ub.[ubicacion_area],
	lu.[lugar_sede],
	tp.[tipo_pc_descripcion],
	ma.[marca_descripcion]
FROM
	tb_equipo eq
INNER JOIN tb_ubicacion  ub ON eq.tb_ubicacion_id_ubicacion = ub.id_ubicacion
INNER JOIN tb_lugar	lu ON eq.tb_lugar_id_lugar = lu.id_lugar
INNER JOIN tb_tipo_pc tp ON eq.tb_tipo_pc_id_tipo_pc = tp.id_tipo_pc
INNER JOIN tb_marca ma ON eq.tb_marca_id_marca = ma.id_marca
WHERE eq.equipo_nombre_pc LIKE '%'+@equipo_nombre_pc+'%' OR 
eq.equipo_direccion_ip LIKE '%'+@equipo_direccion_ip+'%' OR
eq.equipo_direccion_mac LIKE '%'+@equipo_direccion_mac+'%'
END
GO

----------------
-- POR IP
----------------
CREATE PROCEDURE USP_CONSULTA_TB_EQUIPO_X_IP
	(
	@equipo_direccion_ip varchar(15)	
	)
AS 
BEGIN
SELECT 	
	eq.id_equipo,
	eq.equipo_nombre_pc,
	eq.[equipo_responsable],
	eq.[equipo_direccion_ip],
	eq.[equipo_direccion_mac],
	eq.[equipo_observacion],
	eq.[equipo_actualizado],
	eq.[equipo_licencia],
	eq.[equipo_codigo_inventario],
	eq.[equipo_fecha_creacion],
	ub.[ubicacion_area],
	lu.[lugar_sede],
	tp.[tipo_pc_descripcion],
	ma.[marca_descripcion]
FROM
	tb_equipo eq
INNER JOIN tb_ubicacion  ub ON eq.tb_ubicacion_id_ubicacion = ub.id_ubicacion
INNER JOIN tb_lugar	lu ON eq.tb_lugar_id_lugar = lu.id_lugar
INNER JOIN tb_tipo_pc tp ON eq.tb_tipo_pc_id_tipo_pc = tp.id_tipo_pc
INNER JOIN tb_marca ma ON eq.tb_marca_id_marca = ma.id_marca
WHERE (eq.equipo_direccion_ip LIKE '%'+@equipo_direccion_ip+'%')
END
GO
----------------
-- POR MAC
----------------
CREATE PROCEDURE USP_CONSULTA_TB_EQUIPO_X_MAC
	(
	@equipo_direccion_mac varchar(18)
	)	
AS 
BEGIN
SELECT 	
	eq.id_equipo,
	eq.equipo_nombre_pc,
	eq.[equipo_responsable],
	eq.[equipo_direccion_ip],
	eq.[equipo_direccion_mac],
	eq.[equipo_observacion],
	eq.[equipo_actualizado],
	eq.[equipo_licencia],
	eq.[equipo_codigo_inventario],
	eq.[equipo_fecha_creacion],
	ub.[ubicacion_area],
	lu.[lugar_sede],
	tp.[tipo_pc_descripcion],
	ma.[marca_descripcion]
FROM
	tb_equipo eq
INNER JOIN tb_ubicacion  ub ON eq.tb_ubicacion_id_ubicacion = ub.id_ubicacion
INNER JOIN tb_lugar	lu ON eq.tb_lugar_id_lugar = lu.id_lugar
INNER JOIN tb_tipo_pc tp ON eq.tb_tipo_pc_id_tipo_pc = tp.id_tipo_pc
INNER JOIN tb_marca ma ON eq.tb_marca_id_marca = ma.id_marca
WHERE 
eq.equipo_direccion_mac LIKE '%'+@equipo_direccion_mac+'%'
END
GO


--------------
-- por nombre
--------------
CREATE PROCEDURE USP_CONSULTA_TB_EQUIPO_X_PC
	(
	@equipo_nombre_pc varchar(25)	
	)
AS 
BEGIN
SELECT 	
	eq.id_equipo,
	eq.equipo_nombre_pc,
	eq.[equipo_responsable],
	eq.[equipo_direccion_ip],
	eq.[equipo_direccion_mac],
	eq.[equipo_observacion],
	eq.[equipo_actualizado],
	eq.[equipo_licencia],
	eq.[equipo_codigo_inventario],
	eq.[equipo_fecha_creacion],
	ub.[ubicacion_area],
	lu.[lugar_sede],
	tp.[tipo_pc_descripcion],
	ma.[marca_descripcion]
FROM
	tb_equipo eq
INNER JOIN tb_ubicacion  ub ON eq.tb_ubicacion_id_ubicacion = ub.id_ubicacion
INNER JOIN tb_lugar	lu ON eq.tb_lugar_id_lugar = lu.id_lugar
INNER JOIN tb_tipo_pc tp ON eq.tb_tipo_pc_id_tipo_pc = tp.id_tipo_pc
INNER JOIN tb_marca ma ON eq.tb_marca_id_marca = ma.id_marca
WHERE 
eq.equipo_nombre_pc LIKE '%'+@equipo_nombre_pc+'%'
END
GO


------------------
-- POR EQUIPO; LISTAR DETALLE
--------------------------------
CREATE PROCEDURE [dbo].[USP_CONSULTA_X_IP_DETALLE_EQUIPO]
	(
	@equipo_direccion_ip varchar(15)
	)
AS 
BEGIN
SELECT 
	eq.equipo_direccion_ip,		
	dt.id_detalle_equipo as 'ID',
	ca.tipo_categoria as 'Categoria',
	dt.[detalle_equipo_descripcion] as 'Producto',
	ma.marca_descripcion as 'Marca',
	dt.[detalle_equipo_cantidad] as 'Cantidad',
	eq.equipo_nombre_pc,
	eq.equipo_responsable
FROM [tb_detalle_equipo] dt
INNER JOIN tb_equipo eq ON eq.id_equipo = dt.tb_equipo_id_equipo
INNER JOIN tb_marca ma ON ma.id_marca = dt.tb_marca_id_marca
INNER JOIN tb_categoria ca on ca.id_categoria = dt.tb_categoria_id_categoria
WHERE eq.equipo_direccion_ip = @equipo_direccion_ip
END
go

--
-- EQUIPO CON MAS HISTORIALES
--
CREATE PROCEDURE [dbo].[USP_CONSULTA_X_PC_MANTENIMIENTO]
AS 
BEGIN
SELECT 
eq.equipo_direccion_ip,
COUNT(man.tb_equipo_id_equipo) as 'Historiales'
FROM tb_equipo eq
inner join tb_mantenimiento man on man.tb_equipo_id_equipo = eq.id_equipo
GROUP BY eq.equipo_direccion_ip
ORDER BY Historiales DESC
END
go


-- equipo con mas accesorios o detalles
--
create procedure usp_consulta_cant_detalle_pc
as
begin
select top 20 eq.equipo_direccion_ip, 
count(de.tb_equipo_id_equipo) as 'Implementos' 
from tb_detalle_equipo de
inner join tb_equipo eq on eq.id_equipo = de.tb_equipo_id_equipo
group by eq.equipo_direccion_ip
order by Implementos DESC
end
go

create procedure usp_consulta_equipos_lugar_ubicacion
(
	@id_lugar int,
	@id_ubicacion int
)
as
begin
select 
eq.equipo_direccion_ip,
eq.equipo_nombre_pc,
eq.equipo_responsable,
lu.lugar_sede,
ub.ubicacion_area
from tb_equipo eq
inner join tb_lugar lu on eq.tb_lugar_id_lugar = lu.id_lugar
inner join tb_ubicacion ub on eq.tb_ubicacion_id_ubicacion = ub.id_ubicacion
where lu.id_lugar = @id_lugar or ub.id_ubicacion = @id_ubicacion
end
go